// 从vite包中导入defineConfig函数
// 这个函数用于提供类型提示，让配置过程有更好的IDE支持
import { defineConfig } from 'vite'

// 导入Vue插件，这个插件是Vite解析.vue单文件组件的核心
import vue from '@vitejs/plugin-vue'

// 导出配置对象，使用defineConfig包裹可以获得更好的类型提示
export default defineConfig({
  // plugins配置项用于注册Vite插件
  // 这里注册了vue插件，使Vite能够处理.vue文件
  plugins: [vue()],

  // server配置项用于配置开发服务器
  server: {
    // proxy配置用于设置请求代理，解决开发环境的跨域问题
    proxy: {
      // 表示要代理的请求路径前缀，所有以/api开头的请求都会被代理
      '/api': {
        // target是代理的目标服务器地址，即后端API的实际地址
        target: 'http://localhost:8080/axios_test_war/',

        // changeOrigin设置为true时，会修改请求头中的Host字段为target的值
        // 解决某些后端服务器对Host字段的验证问题
        changeOrigin: true,

        // rewrite用于重写请求路径
        // 这里将请求路径中开头的/api替换为空字符串
        // 例如：/api/hello 会被重写为 /hello，然后发送到target
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }
})